import type { LoginResult } from '@/types/member'
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 定义 Store
export const useMemberStore = defineStore(
  'member',
  () => {
    // 会员信息
    const profile = ref<LoginResult>()

    // 保存会员信息，登录时使用
    const setProfile = (val: LoginResult) => {
      profile.value = val
      uni.setStorageSync('key', val)
      console.log('-------', profile.value)
    }

    // 清理会员信息，退出时使用
    const clearProfile = () => {
      profile.value = undefined
      uni.removeStorageSync('key')
    }
    //因为profile并没有持续保存用户信息，只能通过本地storage进行获取用户信息
    if (!profile.value && uni.getStorageSync('key')) {
      profile.value = uni.getStorageSync('key')
    }
    // 记得 return，
    return {
      profile,
      setProfile,
      clearProfile,
    }
  },
  // TODO: 持久化
  {
    //网页端的配置
    persist: true,
    // persist: {
    //   storage: {
    //     getItem(key: string) {
    //       return uni.getStorageSync(key)
    //     },
    //   },
    //   setItem(key: string, val: any) {
    //     return uni.setStorageSync(key, val)
    //   },
    // },
  },
)
